PL/SQL তে Collections হল ডেটার একটি গ্রুপ বা অ্যারে যা একাধিক উপাদান ধারণ করতে পারে। এদের মধ্যে Associative Arrays, Nested Tables, এবং VARRAYs (ভেক্টর অ্যারে) অন্তর্ভুক্ত। এই কোলেকশনগুলির সাথে কাজ করার জন্য বিভিন্ন বিল্ট-ইন মেথড রয়েছে, যা কোলেকশনের ডেটা ম্যানিপুলেট করতে সাহায্য করে।
এখানে আমরা বেশ কিছু গুরুত্বপূর্ণ Collection Methods সম্পর্কে আলোচনা করব, যেমন EXTEND, DELETE, EXISTS ইত্যাদি।
১. EXTEND
- বর্ণনা:
EXTENDমেথডটি কোলেকশনের মধ্যে নতুন উপাদান যুক্ত করতে ব্যবহৃত হয়। এটি কোলেকশনটির আকার বৃদ্ধি করে এবং নতুন উপাদানগুলির জন্য স্থান তৈরি করে। এটি একাধিক উপাদান যুক্ত করার জন্যও ব্যবহার করা যেতে পারে। - ব্যবহার:
- আপনি যদি এক বা একাধিক উপাদান কোলেকশনে যুক্ত করতে চান, তবে
EXTENDব্যবহার করতে পারেন। - এটি
Associative Arrays,Nested Tables, এবংVARRAYs-এ কাজ করে।
- আপনি যদি এক বা একাধিক উপাদান কোলেকশনে যুক্ত করতে চান, তবে
উদাহরণ:
DECLARE
TYPE number_table IS TABLE OF NUMBER;
v_numbers number_table;
BEGIN
-- কোলেকশনের আকার বাড়ানো
v_numbers.EXTEND(3); -- ৩টি নতুন স্থান যুক্ত হবে
-- কোলেকশনের প্রথম তিনটি উপাদানে মান সেট করা
v_numbers(1) := 10;
v_numbers(2) := 20;
v_numbers(3) := 30;
-- ফলাফল প্রদর্শন
FOR i IN 1..v_numbers.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Value: ' || v_numbers(i));
END LOOP;
END;
এখানে EXTEND(3) কোলেকশনে তিনটি নতুন উপাদান স্থান তৈরি করেছে।
২. DELETE
- বর্ণনা:
DELETEমেথডটি কোলেকশন থেকে এক বা একাধিক উপাদান মুছে ফেলতে ব্যবহৃত হয়। এটি একটি নির্দিষ্ট উপাদান বা সমস্ত উপাদান মুছে দিতে পারে। - ব্যবহার:
- আপনি যদি একটি নির্দিষ্ট উপাদান মুছে ফেলতে চান, তবে
DELETE(index)ব্যবহার করতে পারেন। - আপনি যদি কোলেকশনের সমস্ত উপাদান মুছে ফেলতে চান, তবে
DELETEছাড়া কোন ইনডেক্স প্রদান না করে ব্যবহার করতে পারেন।
- আপনি যদি একটি নির্দিষ্ট উপাদান মুছে ফেলতে চান, তবে
উদাহরণ:
DECLARE
TYPE number_table IS TABLE OF NUMBER;
v_numbers number_table;
BEGIN
-- কোলেকশন তৈরী
v_numbers := number_table(10, 20, 30, 40, 50);
-- কোলেকশন থেকে প্রথম উপাদান মুছে ফেলা
v_numbers.DELETE(1);
-- কোলেকশন থেকে সমস্ত উপাদান মুছে ফেলা
v_numbers.DELETE;
-- ফলাফল প্রদর্শন
FOR i IN 1..v_numbers.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Value: ' || v_numbers(i));
END LOOP;
END;
এখানে প্রথমে DELETE(1) ব্যবহার করে প্রথম উপাদান মুছে ফেলা হয়েছে এবং পরবর্তীতে DELETE ব্যবহার করে সমস্ত উপাদান মুছে ফেলা হয়েছে।
৩. EXISTS
- বর্ণনা:
EXISTSমেথডটি চেক করে যে একটি নির্দিষ্ট ইনডেক্সে কোলেকশনটি উপাদান ধারণ করছে কিনা। এটি একটি বুলিয়ান মান ফেরত দেয়:- TRUE: যদি কোলেকশনটি নির্দিষ্ট ইনডেক্সে উপাদান ধারণ করে।
- FALSE: যদি কোলেকশনটি নির্দিষ্ট ইনডেক্সে উপাদান ধারণ না করে।
- ব্যবহার:
- এটি সাধারণত কোলেকশনের সীমা বা ইনডেক্সের জন্য চেক করার জন্য ব্যবহৃত হয়, বিশেষ করে যখন আপনি নিশ্চিত হতে চান যে কোনো নির্দিষ্ট ইনডেক্সে উপাদান রয়েছে কিনা।
উদাহরণ:
DECLARE
TYPE number_table IS TABLE OF NUMBER;
v_numbers number_table;
BEGIN
-- কোলেকশন তৈরী
v_numbers := number_table(10, 20, 30, 40, 50);
-- চেক করা যে ৩য় ইনডেক্সে উপাদান আছে কিনা
IF v_numbers.EXISTS(3) THEN
DBMS_OUTPUT.PUT_LINE('Element at index 3: ' || v_numbers(3));
ELSE
DBMS_OUTPUT.PUT_LINE('No element at index 3');
END IF;
-- চেক করা যে ১০ম ইনডেক্সে উপাদান আছে কিনা
IF v_numbers.EXISTS(10) THEN
DBMS_OUTPUT.PUT_LINE('Element at index 10: ' || v_numbers(10));
ELSE
DBMS_OUTPUT.PUT_LINE('No element at index 10');
END IF;
END;
এখানে প্রথমে ইনডেক্স ৩ এ একটি উপাদান রয়েছে কিনা তা চেক করা হয়েছে, এবং তারপর ইনডেক্স ১০ এর জন্য চেক করা হয়েছে, যা খালি থাকায় No element at index 10 দেখাবে।
৪. COUNT
- বর্ণনা:
COUNTমেথডটি কোলেকশনের বর্তমান উপাদানগুলির সংখ্যা প্রদান করে। এটি একটি ইনটিজার মান ফেরত দেয় যা কোলেকশনের উপাদান সংখ্যা নির্দেশ করে। - ব্যবহার:
- এটি কোলেকশনের মোট উপাদানের সংখ্যা নির্ধারণ করতে ব্যবহৃত হয়।
উদাহরণ:
DECLARE
TYPE number_table IS TABLE OF NUMBER;
v_numbers number_table;
BEGIN
-- কোলেকশন তৈরী
v_numbers := number_table(10, 20, 30, 40);
-- কোলেকশনের উপাদান সংখ্যা প্রদর্শন
DBMS_OUTPUT.PUT_LINE('Total elements: ' || v_numbers.COUNT);
END;
এখানে v_numbers.COUNT কোলেকশনের উপাদান সংখ্যা (৪টি) প্রদান করবে।
৫. TRIM
- বর্ণনা:
TRIMমেথডটি কোলেকশনের শেষের থেকে একটি বা একাধিক উপাদান মুছে ফেলতে ব্যবহৃত হয়। এটিDELETEএর মতই, তবে এটি শুধু কোলেকশনের শেষ থেকে উপাদান মুছে ফেলবে। - ব্যবহার:
- এটি কোলেকশনের শেষ থেকে নির্দিষ্ট সংখ্যক উপাদান মুছে ফেলতে ব্যবহৃত হয়।
উদাহরণ:
DECLARE
TYPE number_table IS TABLE OF NUMBER;
v_numbers number_table;
BEGIN
-- কোলেকশন তৈরী
v_numbers := number_table(10, 20, 30, 40, 50);
-- কোলেকশনের শেষ থেকে ২টি উপাদান মুছে ফেলা
v_numbers.TRIM(2);
-- কোলেকশনের নতুন মান প্রদর্শন
FOR i IN 1..v_numbers.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Value: ' || v_numbers(i));
END LOOP;
END;
এখানে TRIM(2) কোলেকশনের শেষ থেকে দুটি উপাদান মুছে ফেলবে।
উপসংহার
PL/SQL তে কোলেকশনের সাথে কাজ করতে হলে বিভিন্ন মেথডের সাহায্য নিতে হয়। EXTEND, DELETE, EXISTS, COUNT, এবং TRIM এর মত মেথডগুলি কোলেকশনের ডেটা ম্যানিপুলেশন ও চেকিং এর জন্য গুরুত্বপূর্ণ। এই মেথডগুলির মাধ্যমে আপনি কোলেকশনগুলি আরও কার্যকরভাবে পরিচালনা করতে পারবেন।
Read more